import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

# 1. 读取CSV文件
df = pd.read_csv('911.csv')

# 2. 处理地址数据
# 使用str.split方法并取第一个元素来获取地区
df['district'] = df['addr'].str.split('&').str[0]

# 3. 统计地区紧急电话数量
# 使用groupby和size方法来统计每个地区的数量
district_counts = df['district'].value_counts().sort_index()

# 4. 创建折线图
# 设置图形大小和标题
plt.figure(figsize=(12, 6))
plt.title('Number of Emergency Calls per District')
plt.xlabel('District')
plt.ylabel('Number of Calls')

# 绘制折线图
plt.plot(district_counts.index, district_counts.values, marker='o')
# 使用MaxNLocator自动设置x轴刻度数量
plt.gca().xaxis.set_major_locator(MaxNLocator(integer=True))  # 整数刻度
plt.tight_layout()  # 确保标签不会与图形重叠
# 显示图形
plt.show()